import sys
# 以下两行代码以使用tf1.x版本
import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
# 需要datetime
from datetime import datetime
import sys

argv = (".py", "gpu", 30000)
argv = sys.argv
device_name = argv[1]  # Choose device from cmd line. Options: gpu or cpu
# device_name = "gpu"
shape = (int(argv[2]), int(argv[2]))
if device_name == "gpu":
    device_name = "/gpu:0"
else:
    device_name = "/cpu:0"

with tf.device(device_name):
    random_matrix = tf.random_uniform(shape=shape, minval=0, maxval=1)
    dot_operation = tf.matmul(random_matrix, tf.transpose(random_matrix))
    sum_operation = tf.reduce_sum(dot_operation)

startTime = datetime.now()
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as session:
    result = session.run(sum_operation)
    print(result)

# It can be hard to see the results on the terminal with lots of output -- add some newlines to improve readability.
print("\n" * 5)
print("Shape:", shape, "Device:", device_name)
print("Time taken:", datetime.now() - startTime)
print("\n" * 5)
# 运行结果：
# CPU：
#  Shape: (30000, 30000) Device: /cpu:0
#  Time taken: 0:00:55.894182
# GPU：
#  Shape: (30000, 30000) Device: /gpu:0
#  Time taken: 0:00:07.981562
